package com.linkage.lcims.base.po.dialup;

import java.io.Serializable;
import java.util.Date;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;


/** 
 *        @hibernate.class
 *         table="B_DIALUP_USER"
 *     
*/
@SuppressWarnings("serial")
public class BDialupUser implements Serializable {

    /** identifier field */
    private String username;

    /** nullable persistent field */
    private String password;

    /** nullable persistent field */
    private Integer passwordtype;

    /** persistent field */
    private String areano;

    /** persistent field */
    private Integer paytype;

    /** nullable persistent field */
    private String paynum;

    /** nullable persistent field */
    private Integer balance;

    /** persistent field */
    private Integer groupid;

    /** nullable persistent field */
    private Integer newgroupid;

    /** persistent field */
    private Integer callingtype;

    /** nullable persistent field */
    private String callingno;

    /** nullable persistent field */
    private Integer newcallingtype;

    /** nullable persistent field */
    private String newcallingno;

    /** nullable persistent field */
    private Integer limitusers;

    /** persistent field */
    private Integer status;

    /** nullable persistent field */
    private Integer pausereason;

    /** persistent field */
    private Date opendate;

    /** nullable persistent field */
    private String openoperator;

    /** persistent field */
    private Date effectdate;

    /** nullable persistent field */
    private Date pausedate;

    /** persistent field */
    private Date expiredate;

    /** nullable persistent field */
    private Date closedate;

    /** nullable persistent field */
    private Date moddate;

    /** nullable persistent field */
    private String modoperator;

    /** nullable persistent field */
    private Date billingdate;

    /** nullable persistent field */
    private Integer freeflag;

    /** nullable persistent field */
    private Integer limitusedvalue;

    /** nullable persistent field */
    private Integer currusedvalue;

    /** nullable persistent field */
    private Date curruseddate;

    /** nullable persistent field */
    private Integer roamlevel;

    /** nullable persistent field */
    private String optionalservice;

    /** full constructor */
    public BDialupUser(String username, String password, Integer passwordtype, String areano, Integer paytype, String paynum, Integer balance, Integer groupid, Integer newgroupid, Integer callingtype, String callingno, Integer newcallingtype, String newcallingno, Integer limitusers, Integer status, Integer pausereason, Date opendate, String openoperator, Date effectdate, Date pausedate, Date expiredate, Date closedate, Date moddate, String modoperator, Date billingdate, Integer freeflag, Integer limitusedvalue, Integer currusedvalue, Date curruseddate, Integer roamlevel, String optionalservice) {
        this.username = username;
        this.password = password;
        this.passwordtype = passwordtype;
        this.areano = areano;
        this.paytype = paytype;
        this.paynum = paynum;
        this.balance = balance;
        this.groupid = groupid;
        this.newgroupid = newgroupid;
        this.callingtype = callingtype;
        this.callingno = callingno;
        this.newcallingtype = newcallingtype;
        this.newcallingno = newcallingno;
        this.limitusers = limitusers;
        this.status = status;
        this.pausereason = pausereason;
        this.opendate = opendate;
        this.openoperator = openoperator;
        this.effectdate = effectdate;
        this.pausedate = pausedate;
        this.expiredate = expiredate;
        this.closedate = closedate;
        this.moddate = moddate;
        this.modoperator = modoperator;
        this.billingdate = billingdate;
        this.freeflag = freeflag;
        this.limitusedvalue = limitusedvalue;
        this.currusedvalue = currusedvalue;
        this.curruseddate = curruseddate;
        this.roamlevel = roamlevel;
        this.optionalservice = optionalservice;
    }

    /** default constructor */
    public BDialupUser() {
    }

    /** minimal constructor */
    public BDialupUser(String username, String areano, Integer paytype, Integer groupid, Integer callingtype, Integer status, Date opendate, Date effectdate, Date expiredate) {
        this.username = username;
        this.areano = areano;
        this.paytype = paytype;
        this.groupid = groupid;
        this.callingtype = callingtype;
        this.status = status;
        this.opendate = opendate;
        this.effectdate = effectdate;
        this.expiredate = expiredate;
    }

    /** 
     *            @hibernate.id
     *             generator-class="assigned"
     *             type="java.lang.String"
     *             column="username"
     *         
     */
    public String getUsername() {
        return this.username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    /** 
     *            @hibernate.property
     *             column="password"
     *             length="32"
     *         
     */
    public String getPassword() {
        return this.password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    /** 
     *            @hibernate.property
     *             column="passwordtype"
     *             length="10"
     *         
     */
    public Integer getPasswordtype() {
        return this.passwordtype;
    }

    public void setPasswordtype(Integer passwordtype) {
        this.passwordtype = passwordtype;
    }

    /** 
     *            @hibernate.property
     *             column="areano"
     *             length="20"
     *             not-null="true"
     *         
     */
    public String getAreano() {
        return this.areano;
    }

    public void setAreano(String areano) {
        this.areano = areano;
    }

    /** 
     *            @hibernate.property
     *             column="paytype"
     *             length="10"
     *             not-null="true"
     *         
     */
    public Integer getPaytype() {
        return this.paytype;
    }

    public void setPaytype(Integer paytype) {
        this.paytype = paytype;
    }

    /** 
     *            @hibernate.property
     *             column="paynum"
     *             length="30"
     *         
     */
    public String getPaynum() {
        return this.paynum;
    }

    public void setPaynum(String paynum) {
        this.paynum = paynum;
    }

    /** 
     *            @hibernate.property
     *             column="balance"
     *             length="10"
     *         
     */
    public Integer getBalance() {
        return this.balance;
    }

    public void setBalance(Integer balance) {
        this.balance = balance;
    }

    /** 
     *            @hibernate.property
     *             column="groupid"
     *             length="10"
     *             not-null="true"
     *         
     */
    public Integer getGroupid() {
        return this.groupid;
    }

    public void setGroupid(Integer groupid) {
        this.groupid = groupid;
    }

    /** 
     *            @hibernate.property
     *             column="newgroupid"
     *             length="10"
     *         
     */
    public Integer getNewgroupid() {
        return this.newgroupid;
    }

    public void setNewgroupid(Integer newgroupid) {
        this.newgroupid = newgroupid;
    }

    /** 
     *            @hibernate.property
     *             column="callingtype"
     *             length="5"
     *             not-null="true"
     *         
     */
    public Integer getCallingtype() {
        return this.callingtype;
    }

    public void setCallingtype(Integer callingtype) {
        this.callingtype = callingtype;
    }

    /** 
     *            @hibernate.property
     *             column="callingno"
     *             length="26"
     *         
     */
    public String getCallingno() {
        return this.callingno;
    }

    public void setCallingno(String callingno) {
        this.callingno = callingno;
    }

    /** 
     *            @hibernate.property
     *             column="newcallingtype"
     *             length="5"
     *         
     */
    public Integer getNewcallingtype() {
        return this.newcallingtype;
    }

    public void setNewcallingtype(Integer newcallingtype) {
        this.newcallingtype = newcallingtype;
    }

    /** 
     *            @hibernate.property
     *             column="newcallingno"
     *             length="26"
     *         
     */
    public String getNewcallingno() {
        return this.newcallingno;
    }

    public void setNewcallingno(String newcallingno) {
        this.newcallingno = newcallingno;
    }

    /** 
     *            @hibernate.property
     *             column="limitusers"
     *             length="10"
     *         
     */
    public Integer getLimitusers() {
        return this.limitusers;
    }

    public void setLimitusers(Integer limitusers) {
        this.limitusers = limitusers;
    }

    /** 
     *            @hibernate.property
     *             column="status"
     *             length="10"
     *             not-null="true"
     *         
     */
    public Integer getStatus() {
        return this.status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    /** 
     *            @hibernate.property
     *             column="pausereason"
     *             length="10"
     *         
     */
    public Integer getPausereason() {
        return this.pausereason;
    }

    public void setPausereason(Integer pausereason) {
        this.pausereason = pausereason;
    }

    /** 
     *            @hibernate.property
     *             column="opendate"
     *             length="23"
     *             not-null="true"
     *         
     */
    public Date getOpendate() {
        return this.opendate;
    }

    public void setOpendate(Date opendate) {
        this.opendate = opendate;
    }

    /** 
     *            @hibernate.property
     *             column="openoperator"
     *             length="15"
     *         
     */
    public String getOpenoperator() {
        return this.openoperator;
    }

    public void setOpenoperator(String openoperator) {
        this.openoperator = openoperator;
    }

    /** 
     *            @hibernate.property
     *             column="effectdate"
     *             length="23"
     *             not-null="true"
     *         
     */
    public Date getEffectdate() {
        return this.effectdate;
    }

    public void setEffectdate(Date effectdate) {
        this.effectdate = effectdate;
    }

    /** 
     *            @hibernate.property
     *             column="pausedate"
     *             length="23"
     *         
     */
    public Date getPausedate() {
        return this.pausedate;
    }

    public void setPausedate(Date pausedate) {
        this.pausedate = pausedate;
    }

    /** 
     *            @hibernate.property
     *             column="expiredate"
     *             length="23"
     *             not-null="true"
     *         
     */
    public Date getExpiredate() {
        return this.expiredate;
    }

    public void setExpiredate(Date expiredate) {
        this.expiredate = expiredate;
    }

    /** 
     *            @hibernate.property
     *             column="closedate"
     *             length="23"
     *         
     */
    public Date getClosedate() {
        return this.closedate;
    }

    public void setClosedate(Date closedate) {
        this.closedate = closedate;
    }

    /** 
     *            @hibernate.property
     *             column="moddate"
     *             length="23"
     *         
     */
    public Date getModdate() {
        return this.moddate;
    }

    public void setModdate(Date moddate) {
        this.moddate = moddate;
    }

    /** 
     *            @hibernate.property
     *             column="modoperator"
     *             length="15"
     *         
     */
    public String getModoperator() {
        return this.modoperator;
    }

    public void setModoperator(String modoperator) {
        this.modoperator = modoperator;
    }

    /** 
     *            @hibernate.property
     *             column="billingdate"
     *             length="23"
     *         
     */
    public Date getBillingdate() {
        return this.billingdate;
    }

    public void setBillingdate(Date billingdate) {
        this.billingdate = billingdate;
    }

    /** 
     *            @hibernate.property
     *             column="freeflag"
     *             length="10"
     *         
     */
    public Integer getFreeflag() {
        return this.freeflag;
    }

    public void setFreeflag(Integer freeflag) {
        this.freeflag = freeflag;
    }

    /** 
     *            @hibernate.property
     *             column="limitusedvalue"
     *             length="10"
     *         
     */
    public Integer getLimitusedvalue() {
        return this.limitusedvalue;
    }

    public void setLimitusedvalue(Integer limitusedvalue) {
        this.limitusedvalue = limitusedvalue;
    }

    /** 
     *            @hibernate.property
     *             column="currusedvalue"
     *             length="10"
     *         
     */
    public Integer getCurrusedvalue() {
        return this.currusedvalue;
    }

    public void setCurrusedvalue(Integer currusedvalue) {
        this.currusedvalue = currusedvalue;
    }

    /** 
     *            @hibernate.property
     *             column="curruseddate"
     *             length="23"
     *         
     */
    public Date getCurruseddate() {
        return this.curruseddate;
    }

    public void setCurruseddate(Date curruseddate) {
        this.curruseddate = curruseddate;
    }

    /** 
     *            @hibernate.property
     *             column="roamlevel"
     *             length="10"
     *         
     */
    public Integer getRoamlevel() {
        return this.roamlevel;
    }

    public void setRoamlevel(Integer roamlevel) {
        this.roamlevel = roamlevel;
    }

    /** 
     *            @hibernate.property
     *             column="optionalservice"
     *             length="20"
     *         
     */
    public String getOptionalservice() {
        return this.optionalservice;
    }

    public void setOptionalservice(String optionalservice) {
        this.optionalservice = optionalservice;
    }

    public String toString() {
        return new ToStringBuilder(this)
            .append("username", getUsername())
            .toString();
    }

    public boolean equals(Object other) {
        if ( (this == other ) ) return true;
        if ( !(other instanceof BDialupUser) ) return false;
        BDialupUser castOther = (BDialupUser) other;
        return new EqualsBuilder()
            .append(this.getUsername(), castOther.getUsername())
            .isEquals();
    }

    public int hashCode() {
        return new HashCodeBuilder()
            .append(getUsername())
            .toHashCode();
    }

}
